from rest_framework.generics import ListAPIView, ListCreateAPIView

from apps.users.models import User
from apps.meiduo_admin.serializers.user import UserSerializer, UserAddSerializer
from apps.meiduo_admin.utils import PageNum


class UserListView(ListCreateAPIView):

    # 查询所有用户信息
    def get_queryset(self):
        # 查询字符串
        keyword = self.request.query_params.get('keyword')

        if keyword:
            # 获取查询的指定用户集
            queryset = User.objects.filter(username__contains=keyword)
        else:
            # 获取所有用户查询集
            queryset = User.objects.all()

        return queryset

    # 指定序列化器
    def get_serializer_class(self):
        # 如果请求方法是GET，返回UserSerializer序列器
        if self.request.method == 'GET':
            return UserSerializer
        # 如果请求方法是POST，返回
        elif self.request.method == 'POST':
            return UserAddSerializer

    # 设置分页器
    pagination_class = PageNum
